/*
 * @Author: szx
 * @Date: 2022-03-10 19:09:52
 * @LastEditTime: 2022-03-10 20:25:28
 * @Description:
 * @FilePath: \MDN_JS学习\测试\Promise执行顺序.js
 */

// let p3;
// p1 = new Promise((resolve) => {
//     p3 = new Promise((res) => res());
//     p3.then(() => {
//         console.log('p3');
//         resolve(); // resolve()方法用在then方法中，变为异步执行
//     });
// });
// p1.then(() => {
//     console.log('p1-1');
// }).then(() => {
//     console.log('p1-2');
// });
// p3.then(() => {
//     console.log('p3-1');
// }).then(() => {
//     console.log('p3-2');
// });
// 运行结果如下：
// p3;
// p3 - 1;
// p1 - 1;
// p3 - 2;
// p1 - 2;

// const p = Promise.resolve();
// const p1 = Promise.resolve(p);
// const p2 = new Promise((res) => res(p));

// p2.then(() => {
//     //p2.resolve之后才能调用回调函数
//     console.log('p2-1');
// })
//     .then(() => {
//         console.log('p2-2');
//     })
//     .then(() => {
//         console.log('p2-3');
//     });

// p.then(() => {
//     console.log('p-1');
// })
//     .then(() => {
//         console.log('p-2');
//     })
//     .then(() => {
//         console.log('p-3');
//     });

Promise.resolve()
    .then(() => {
        console.log(0);
        return Promise.resolve(4);
    })
    .then((res) => {
        console.log(res);
    });

